﻿using ChurchDiary.TableEntity;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ChurchDiary.DAL.Contract
{
    public interface IDALShared
    {
        #region Country
        string InsertCountryDetails(EntityCountry country);
        string UpdateCountryDetails(EntityCountry country);
        string DeleteCountryDetails(Guid CountryId);
        List<EntityCountry> GetCountryDetails();
        EntityCountry GetCountry(Guid CountryId);
        #endregion
        #region State
        string InsertStateDetails(EntityStates country);
        string UpdateStateDetails(EntityStates country);
        string DeleteStateDetails(Guid StateId);
        List<EntityStates> GetStateDetails();
        EntityStates GetState(Guid StateId);
        #endregion
        #region Greade Settings
        string InsertGrageSettings(EntityGrade Grade);
        string UpdateGrageSettings(EntityGrade Grade);
        string DeleteSettings(Guid GradeId);
        List<EntityGrade> GetGrageSettings();
        EntityGrade GetGrageSetting(Guid GradeId);
        #endregion
        #region JobTitle
        string InsertJobTitle(EntityJobtitle Jobtitle);
        string UpdateJobTitle(EntityJobtitle Jobtitle);
        string DeleteJobTitle(Guid JobtitleId);
        List<EntityJobtitle> GetJobTitles(int PageNo, string SearchKey, string Sort, string SortMode, int PerPage);
        List<EntityJobtitle> GetJobTitles(int OrganizationId);
        EntityJobtitle GetJobTitle(Guid JobtitleId);
        #endregion
        #region Language
        List<EntityLanguage> GetLanguages();
        List<EntityLanguage> GetLanguages(int PageNo, string SearchKey, string Sort, string SortMode, int PerPage);
        EntityLanguage GetLanguage(Guid LanguageId);
        string InsertLanguage(EntityLanguage Language);
        string UpdateLanguage(EntityLanguage Language);
        string DeleteLanguage(Guid LanguageId);
        #endregion
        #region Comments
        string insertComments(EntityComments Comments);
        //string UpdateCommentStatus(Guid CommentId,int Status);
        //List<EntityComments> GetComments();
        //EntityComments GetComment();
        #endregion
        #region Relationship
        /// <summary>
        /// </summary>
        /// <returns>Married Family Relationships</returns>
        List<EntityRelationShip> GetRelationShip();
        List<EntityRelationShip> GetUnMarriedRelationShip();
        EntityRelationShip GetRelationShipByID(Guid RelationshipId);
        List<EntityRelationShip> GetAllRelationShips(int PageNo, string SearchKey, string Sort, string SortMode);
        string InsertRelationShip(EntityRelationShip RelationShip);
        string UpdateRelationShip(EntityRelationShip RelationShip);
        string DeleteRelationShip(Guid RelationShipId);
        #endregion
        #region DefaultConfig
        string InsertDefaultConfig(EntityDefaultConfig DefaultConfig);
        string UpdateDefaultConfig(EntityDefaultConfig DefaultConfig);
        string DeleteDefaultConfig(Guid KeyId);
        List<EntityDefaultConfig> GetDefaultConfig();
        EntityDefaultConfig GetDefaultConfig(Guid DefaultConfigId);
        #endregion
        #region Dateformat
        List<EntityDateFormat> GetDateformat();
        #endregion
    }
}
